package com.ashlikun.okhttputils.http.extend

import android.net.Uri
import okhttp3.HttpUrl

/**
 * 作者　　: 李坤
 * 创建时间: 2024/10/31　15:31
 * 邮箱　　：496546144@qq.com
 *
 * 功能介绍：
 */
/**
 * 请求URL参数赋值
 * @param isAdd 是否直接添加，不管是否存在，false:只有已经存在的才会赋值
 */
fun HttpUrl.Builder.setUrlParams(data: Map<String, Any>, isAdd: Boolean = true) {
    if (data.isEmpty()) return
    if (isAdd) {
        data.forEach { setEncodedQueryParameter(it.key, it.value.toString()) }
    } else {
        val httpurl = build()
        data.forEach {
            //不包含才添加
            if (!httpurl.queryParameterNames.contains(it.key)) setEncodedQueryParameter(it.key, it.value.toString())
        }
    }

}

/**
 * 将传递进来的参数拼接成 url
 */
fun Uri.createUrlFromParams(params: Map<String, Any>): Uri {
    if (params.isEmpty()) return this
    return buildUpon().apply {
        params.forEach {
            appendQueryParameter(it.key, (it.value.toString()))
        }
    }.build()
}